The present invention generally relates to input/output request processing, and more particularly relates to managing interrupts generated by input/output requests.
In a computing environment, an interrupt is generally referred to as the temporary stopping of the current program routine in order to execute some higher priority I/O (input/output) subroutine. Normally, an I/O interrupt occurs at the completion of each I/O stream and for the particular I/O device that executed the I/O stream. Therefore, a one-to-one relationship exists between the I/O interrupt and the execution of I/O stream on a particular I/O device. However, such a tightly coupled relationship may not be desirable with some of the newer I/O devices such as Queued Direct Input/Output (QDIO) and Queued Cryptographic I/O devices, which can comprise many queues for the same Queued I/O device. Therefore, an interrupt referred to as a “thin interrupt” is used for these devices to minimize the number of I/O interrupts that are generated for these I/O devices. A thin interrupt is generated for one or more queues rather than a particular I/O device. One problem with thin interrupts is that they can be over initiated. In other words, extra thin interrupts can be generated in situations where an interrupt is not required. Therefore, thin interrupts can cause the system to look for work that is not available quite frequently and cause system performance degradation.